详细解答KVM概念、架构、功能、常用工具及虚拟化部署 kvm是一种
各位老铁们,大家好,今天由我来为大家分享详解KVM概念、架构、功能、常用工具及虚拟化部署,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
Hypervisor直接安装在主机的逻辑上:Hypervisor直接安装在物理机上,多个虚拟机运行在Hypervisor上。 Hypervisor的实现一般是专门定制的Linux系统。 Xen 和VMWare 的ESXi 都属于这一类。
KVM概念
KVM的全称是Kernel-based Virtual Machine。它是Linux的一个内核模块。该内核模块将Linux 转变为虚拟机管理程序:
它由Quramnet开发,2008年被Red Hat收购。它支持x86(32位和64位)、s390、Powerpc等CPU。自Linux 2.6.20 起,它已作为模块包含在Linux 内核中。
但是,KVM 需要支持虚拟化扩展的CPU。
KVM架构
KVM 是基于虚拟化扩展(Intel VT 或AMD-V)的X86 硬件的开源Linux 原生全虚拟化解决方案。在KVM中,虚拟机被实现为一个常规的Linux进程,并由标准的Linux调度程序进行调度;虚拟机的每个虚拟CPU都被实现为常规Linux进程。这使得KMV 能够使用Linux 内核的现有功能。
然而,KVM 本身不执行任何硬件模拟,需要客户空间程序通过/dev/kvm 接口设置客户虚拟服务器的地址空间,为其提供模拟I/O,并将其视频显示映射回主机的视频显示。显示屏幕。目前这个应用程序是QEMU。
Linux上的用户空间、内核空间和虚拟机:
KVM架构
阐明:
Guest:访客系统,包括CPU(vCPU)、内存、驱动程序(Console、网卡、I/O设备驱动程序等),被KVM置于受限CPU模式。 KVM:运行在内核空间,提供CPU和内存虚拟化,以及客户端I/O拦截。 Guest的I/O被KVM拦截后,交给QEMU处理。 QEMU:修改后的KVM虚拟机QEMU代码,运行在用户空间,提供硬件I/O虚拟化,通过IOCTL /dev/kvm设备与KVM交互。
KVM功能
KVM 支持的功能包括:
支持CPU和内存复用,支持半虚拟化I/O(virtio),支持热插拔(cpu、块设备、网络设备等),支持对称多处理(Symmetric Multi-Processing,缩写为SMP),支持实时迁移。 (Live Migration)支持PCI设备直接分配和单根I/O虚拟化(SR-IOV)支持内核页合并(KSM)支持NUMA(Non-Uniform Memory Access,非统一内存访问结构)
KVM常用工具
简单介绍这里KVM 的一些常用工具:
libvirt:用于操作和管理KVM 虚拟机的虚拟化API。它是用C语言编写的,可以被Python、Ruby、Perl、PHP、Java等语言调用。可以操作虚拟机管理程序,包括KVM、vmware、XEN、Hyper-v、LXC等。
Virsh:基于libvirt 的命令行工具(CLI)
Virt-Manager:基于libvirt的GUI工具
virt-v2v:虚拟机格式迁移工具
virt-*工具:包括Virt-install(创建KVM虚拟机的命令行工具)、Virt-viewer(连接虚拟机屏幕的工具)、Virt-clone(虚拟机克隆工具)、virt-top等。
sVirt:安全工具